home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- # Create a symlink tree.
- #
- # Syntax: symlink-tree srcdir "ignore1 ignore2 ..."
- #
- # where srcdir is the directory to create a symlink tree to,
- # and "ignoreN" is a list of files/directories to ignore.
-
- prog=$0
- srcdir=$1
- ignore="$2"
-
- ignore_additional=". .. CVS"
-
- # If we were invoked with a relative path name, adjust ${prog} to work
- # in subdirs.
- case ${prog} in
- /*) ;;
- *) prog=../${prog} ;;
- esac
-
- # Set newsrcdir to something subdirectories can use.
- case ${srcdir} in
- /*) newsrcdir=${srcdir} ;;
- *) newsrcdir=../${srcdir} ;;
- esac
-
- for f in `ls -a ${srcdir}`; do
- if [ -d ${srcdir}/$f ]; then
- found=
- for i in ${ignore} ${ignore_additional}; do
- if [ "$f" = "$i" ]; then
- found=yes
- fi
- done
- if [ -z "${found}" ]; then
- if [ -d $f ]; then true; else mkdir $f; fi
- (cd $f; ${prog} ${newsrcdir}/$f "${ignore}")
- fi
- else
- rm -f $f
- ln -s ${srcdir}/$f .
- fi
- done
-
- exit 0
-